import copy
import random

#  name的值3到5个小写字母且保证唯一，
#  age的值的取值范围为大于10小于60的整数，
#  sex取值为0、1、2中的一个,
#  city固定为深圳,
#  province固定为广东，
#  ext字段中boost字段取值为0、1、2、3中的一个，
#  其余固定不变。

mydict = {
  "name": "Tom",
  "age": "18",
  "sex": 1,
  "city": "深圳",
  "province": "广东",
  "ext": {
    "type": "dynamic",
    "inner_hits": {},
    "score_mode": "avg",
    "min_children": 0,
    "max_children": 25555,
    "ignore_unmapped": False,
    "boost": 1
  }
}

names = set() #名字集合
users = [] #用户信息数组

while len(names) < 10: # 只要names集合元素个数还不到10个，就持续生成name放进去
    name = ''.join(random.sample('abcdefghijklmnopqrstuvwxyz', random.randint(3, 5)))
    names.add(name)

for i in range(10):

    user = copy.deepcopy(mydict) # 将mydict中的内容深度拷贝，给user

    user["name"] = names.pop() #随机取出一个name

    age = random.randint(11, 59)
    user["age"] = age #将随机产生的age，赋给user的age

    sex = random.choice([0,1,2])
    user["sex"] = sex #将随机产生的sex，赋给user的sex

    boost = random.choice([0,1,2,3])
    user["ext"]["boost"] = boost #将随机产生的boost，赋给user的ext.boost

    users.append(user)


print(users)